package com.hy.study.utils;

/**
 * 数字使用下划线定义
 * 不能在小数点正前后添加
 * 不要在L/D/F等数据类型标识的正前方添加
 * 不能作为数字开头，也不能作为结尾
 * 不要往进制修饰符中间或后面添加
 * @author huyong
 * @date 2024 年 01 月 16 日 11:41: 45
 */
public class Number_ {

    public void test(){
        long price = 1_000_123L;
      //  float pi1 = 3_.1415F; // 无效的; 不能在小数点之前有下划线
     //   float pi2 = 3._1415F; // 无效的; 不能在小数点之后有下划线
      //  long socialSecurityNumber1 = 999_99_9999_L; //无效的，不能在L下标之前加下划线
     //   int a1 = _52; // 这是一个下划线开头的标识符，不是个数字
        int a2 = 5_2; // 有效
     //   int a3 = 52_; // 无效的，不能以下划线结尾
        int a4 = 5_______2; // 有效的
    //    int a5 = 0_x52; // 无效，不能在0x之间有下划线
   //     int a6 = 0x_52; // 无效的，不能在数字开头有下划线
        int a7 = 0x5_2; // 有效的 (16进制数字)
  //      int a8 = 0x52_; // 无效的，不能以下划线结尾
        int a9 = 0_52; // 有效的（8进制数）
        int a10 = 05_2; // 有效的（8进制数）
 //       int a11 = 052_; // 无效的，不能以下划线结尾
        long creditCardNumber = 6684_5678_9012_3456l;
        long socialSecurityNumber = 333_99_9999l;
        float pi = 3.14_15F;
        long hexBytes = 0xFF_EC_DE_5E;
        long hexWords = 0xCAFE_BABE;
        long maxLong = 0x7fff_ffff_ffff_ffffL;
        byte nybbles = 0b0010_0101;
        long bytes = 0b11010010_01101001_10010100_10010010;
    }
}
